// ++++++++++++++++++++++++++++++++++++++++
// 《Go 语言+Vue.js 实战派——基于 Gin 框架》源码
// ++++++++++++++++++++++++++++++++++++++++
// 作者公众号：源码大数据
// 自媒体账号（抖音、视频号、快手、B站、知乎）：廖显东-ShirDon
// 仓库地址：https://gitee.com/shirdonl/goGinVue.git
// 仓库地址：https://github.com/shirdonl/goGinVue.git
// 博客：https://www.shirdon.com
// 购买图书：https: //item.jd.com/14958064.html
// ++++++++++++++++++++++++++++++++++++++++

package main

// StringConstraint 是一个约束
type StringConstraint interface {
	String() string
}

// T必须实现StringConstraint，T只能执行StringConstraint定义的操作
func getString[T StringConstraint](s T) string {
	return s.String()
}

type Number interface {
	int | int8 | int16 | int32 | int64 | float32 | float64
}

// T 作为类型参数现在支持所有 int、float 类型
func Max[T Number](a, b T) T {
	if a > b {
		return a
	}
	return b
}
